উদাহরণ সহ Ignore Unknown Properties এর ব্যবহারের কৌশল

@JsonIgnoreProperties এবং Ignore Unknown Properties - জ্যাকসন অ্যানোটেশন (Jackson Annotations) - Java Technologies

331

Jackson এর @JsonIgnoreProperties অ্যানোটেশন এবং ObjectMapper কনফিগারেশনের মাধ্যমে আপনি JSON ডেসিরিয়ালাইজেশনের সময় অজানা বা অপ্রত্যাশিত প্রপার্টি উপেক্ষা করতে পারেন। এটি বিশেষভাবে ব্যবহারী যখন JSON ডেটা আপনার Java ক্লাসের সাথে পুরোপুরি মেলে না বা সেখানে অতিরিক্ত ফিল্ড থাকতে পারে।


@JsonIgnoreProperties Annotation

Jackson-এর @JsonIgnoreProperties অ্যানোটেশনটি ক্লাসের উপর প্রয়োগ করা হয় এবং এটি নির্দেশ করে যে কোনো অজানা প্রপার্টি বা অতিরিক্ত ফিল্ড মডেল ক্লাসে ম্যাপ না করেই উপেক্ষা করতে হবে।


@JsonIgnoreProperties এর ব্যবহার

উদাহরণ 1: @JsonIgnoreProperties Annotation

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
    private int id;
    private String name;

    // Getters and Setters
}
Serialization Example:
import com.fasterxml.jackson.databind.ObjectMapper;

public class IgnoreUnknownPropertiesExample {
    public static void main(String[] args) throws Exception {
        String json = "{\"id\": 1, \"name\": \"Rahim\", \"extraField\": \"extraValue\"}";

        ObjectMapper mapper = new ObjectMapper();
        User user = mapper.readValue(json, User.class);

        System.out.println("ID: " + user.getId());
        System.out.println("Name: " + user.getName());
    }
}
Explanation:
  • @JsonIgnoreProperties(ignoreUnknown = true) অ্যাপ্লিকেশনটি বলে যে JSON ডেটাতে যদি কোনো অতিরিক্ত বা অজানা ফিল্ড থাকে, তবে তা উপেক্ষা করা হবে এবং ডেসিরিয়ালাইজেশন প্রক্রিয়া চালু থাকবে।
  • উপরের উদাহরণে extraField নামক ফিল্ডটি User ক্লাসের মধ্যে উপস্থিত না থাকলেও, ObjectMapper সেই ফিল্ডটিকে উপেক্ষা করে ডেসিরিয়ালাইজ করবে।
JSON Output:
{
  "ID": 1,
  "Name": "Rahim"
}

ObjectMapper-এ FAIL_ON_UNKNOWN_PROPERTIES সেটিং ব্যবহার

এছাড়া আপনি ObjectMapper কনফিগারেশন ব্যবহার করে global ভাবে অজানা প্রপার্টি উপেক্ষা করতে পারেন।

উদাহরণ 2: FAIL_ON_UNKNOWN_PROPERTIES ব্যবহার

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.DeserializationFeature;

public class ObjectMapperIgnoreUnknownPropertiesExample {
    public static void main(String[] args) throws Exception {
        String json = "{\"id\": 1, \"name\": \"Rahim\", \"extraField\": \"extraValue\"}";

        // Create ObjectMapper and configure to ignore unknown properties globally
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

        User user = mapper.readValue(json, User.class);

        System.out.println("ID: " + user.getId());
        System.out.println("Name: " + user.getName());
    }
}
Explanation:
  • mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) এই কনফিগারেশনটি নিশ্চিত করে যে JSON ডেটায় যদি কোনো অজানা প্রপার্টি থাকে, তবে তা ডেসিরিয়ালাইজেশনে বাধা সৃষ্টি করবে না, এবং এগুলি উপেক্ষা করা হবে।
JSON Output:
{
  "ID": 1,
  "Name": "Rahim"
}

@JsonIgnoreProperties এবং ObjectMapper কনফিগারেশন ব্যবহারের মধ্যে পার্থক্য

পদ্ধতিবর্ণনা
@JsonIgnorePropertiesএকটি ক্লাসের মধ্যে অজানা প্রপার্টি উপেক্ষা করতে ব্যবহৃত হয়, এটি শুধুমাত্র ঐ ক্লাসের জন্য কার্যকর।
ObjectMapper কনফিগারেশনপুরো প্রজেক্টে বা অ্যাপ্লিকেশনে অজানা প্রপার্টি উপেক্ষা করতে ব্যবহার করা হয়।

@JsonIgnore এবং @JsonIgnoreProperties এর মধ্যে পার্থক্য

বৈশিষ্ট্য@JsonIgnore@JsonIgnoreProperties
ফোকাসএকটি ফিল্ড বা প্রপার্টি Serialization/Deserialization থেকে বাদ দেওয়া।ক্লাসের ভিতরের সব ফিল্ড বা একাধিক অজানা ফিল্ড Serialization/Deserialization থেকে বাদ দেওয়া।
ব্যবহারশুধুমাত্র একটি নির্দিষ্ট ফিল্ডের ক্ষেত্রে।একটি ক্লাসের জন্য সব অজানা প্রপার্টি উপেক্ষা করতে।

  1. @JsonIgnoreProperties(ignoreUnknown = true) এবং ObjectMapper এর FAIL_ON_UNKNOWN_PROPERTIES ব্যবহার করে JSON ডেটার অজানা ফিল্ড গুলোকে উপেক্ষা করা যেতে পারে।
  2. যখন আপনার JSON ডেটায় অতিরিক্ত বা অপ্রত্যাশিত প্রপার্টি থাকে, তখন এটি বিশেষভাবে উপকারী, এবং এতে ডেসিরিয়ালাইজেশন ফেইল হওয়া এড়ানো যায়।
  3. এই পদ্ধতিগুলো ব্যবহার করলে আপনি আপনার JSON প্রসেসিং আরও নমনীয় ও robust করতে পারবেন।
Content added By
Promotion

Are you sure to start over?

Loading...